A social-networking system, such as a social-networking website, enables its users to interact with it and with each other through the system. The social-networking system may create and store a record, often referred to as a user profile, in connection with the user. The user profile may include a user's contact information, background information, employment information, demographic information, communication channel information, personal interests, or other suitable information. The social-networking system may also create and store a record of a user's relationship with other users in the social-networking system (e.g., social graph), as well as provide services (e.g., wall-posts, photo-sharing, event organization, messaging, games, or advertisements) to facilitate social interaction between users in the social-networking system. The social-networking system may store a social graph, where individuals, groups, entities, or organizations are represented as nodes in the graph, and where the nodes are connected by edges that may represent one or more specific types of interdependency. The social-networking system may transmit content and messages related to its services to a user's client device over a network.
Social-graph analysis views social relationships in terms of network theory consisting of nodes and edges. Nodes represent the individual actors within the networks, and edges represent the relationships between the actors. The resulting graph-based structures are often very complex. There can be many types of nodes and many types of edges for connecting nodes. In its simplest form, a social graph is a map of all of the relevant edges between all the nodes being studied.